  //vue专用的请求插件 axios 用promise+ajax封装 
 function axios(o) {
    // 1 创建异步对象
    let xhr=new XMLHttpRequest();
    // 2.调用open方法
    if(o.method=="get"){
      console.log(queryParams(o.data))
      o.url=o.url+`?`+queryParams(o.data)
      xhr.open(o.method,o.url,true);
    }
   
    // 3.调用send方法
    if(o.method=="post"){
       xhr.send(queryParams(o.data))
    }else{
        xhr.send()
    }
    // 4.监听返回数据
    return new Promise((resolve,reject)=>{
      xhr.onreadystatechange=function() {
        // console.log(xhr.readyState)
        //  console.log(xhr.status)
        if(xhr.status==200||xhr.status==304){
            resolve(JSON.parse(xhr.responseText))
        }else{
          reject(xhr)
        }
      }
    })
 }

//  参数序列化方法
 function queryParams(obj) {
    // {name:1,age:2}===>name=1&age=2
    var str=``;
    for(k in obj){
      str+=`&${k}=${obj[k]}`
    }
    return str.substr(1)
 }